package com.cotasul.negocio;

import java.util.List;
import java.util.Map;

import com.cotasul.bean.FornecedorBean;
import com.cotasul.bean.OrcamentoBean;
import com.cotasul.negocio.interfaces.IFornecedorServico;
import com.cotasul.persistencia.FornecedorDao;
import com.cotasul.persistencia.interfaces.IDaoGenerico;
import com.cotasul.persistencia.interfaces.IFornecedorDao;

public class FornecedorServico<P extends FornecedorBean> extends
		ServicoGenerico<P> implements IFornecedorServico<P> {

	private IFornecedorDao<P> dao;

	public FornecedorServico() {
		this.dao = new FornecedorDao<P>();
	}

	@Override
	public void alterar(P p) throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public Map<String, Long> salvar(P p) throws Exception {

		return this.dao.salvar(p);
	}

	public FornecedorBean buscaFornecedor(P p) throws Exception {

		return this.dao.buscaFornecedor(p);

	};

	@Override
	public List<FornecedorBean> buscaFornecedorTipo(Long tipo) throws Exception {
		return this.dao.buscaFornecedorTipo(tipo);
	}

	@Override
	public IDaoGenerico<P> getDao() {
		return this.dao;
	}

	@Override
	public void preSalvar(P p) {
		// TODO Auto-generated method stub

	}

	@Override
	public void posSalvar(P p) {
		// TODO Auto-generated method stub

	}

	@Override
	public void excluir(P p) throws Exception {
		try {
			this.dao.exluir(p);
		} catch (Exception e) {
			throw e;
		}

	}

	public void aprovaFornecedor(final P p) throws Exception {
		try {
			this.dao.aprovaFornecedor(p);
		} catch (Exception e) {
			throw e;
		}
	};

	@Override
	public List<P> filtraFornecedores(P p) throws Exception {
		try {
			return this.dao.filtraFornecedores(p);
		} catch (Exception e) {
			throw e;
		}
	}

	@Override
	public List<FornecedorBean> buscaOrcamentosFornecedor(OrcamentoBean orca)
			throws Exception {
		return this.dao.buscaOrcamentosFornecedor(orca);
	}

	@Override
	public String buscaEmails(Map<String, String> param) throws Exception {
		return this.dao.buscaEmails(param);
	}

	@Override
	public List<FornecedorBean> buscaFornecedor(Map<String, String> param)
			throws Exception {
	
		return this.dao.buscaFornecedor(param);
	}
}
